/*
 * Copyright (C) 2018 wxyz <hyhjwzx@126.com>
 * This program can be distributed under the terms of the GNU GPL Version 2.
 * See the file LICENSE.
 *
 */

package ren.wxyz.study.euler.util;

import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;

/**
 * 文件帮助类
 *
 * @auther wxyz 2018-03-08_20:20
 * @since 1.0
 */
public final class FileHelper {

    /**
     * 从文件读取一个数矩阵
     *
     * @param filePath 文件路径
     * @param spiltChar 分隔符
     * @return 数矩阵，第一个参数是列，第二个参数是行
     */
    public static int[][] readNumberGrid(Path filePath, String spiltChar) {
        try {
            // 按行读取文件数据
            List<String> lines = Files.readAllLines(filePath, Charset.defaultCharset());

            // 转换成矩阵
            int[][] grid = new int[lines.size()][];
            for (int i = 0; i < lines.size(); i++) {
                // 行内分割
                String[] cells = lines.get(i).split(spiltChar);
                grid[i] = new int[cells.length];
                // 转换字符串到整数
                for (int j = 0; j < cells.length; j++) {
                    grid[i][j] = Integer.parseInt(cells[j]);
                }
            }

            return grid;
        }
        catch (IOException e) {
            e.printStackTrace();
        }

        return new int[0][0];
    }
}
